/* ============================================================
   Sistema de Planejamento Patrimonial — estilos
   ============================================================ */
:root {
    --cor-primaria: #0d3b66;
    --cor-secundaria: #1b6ca8;
    --cor-acento: #2ec4b6;
    --cor-sucesso: #2a9d8f;
    --cor-alerta: #e9c46a;
    --cor-perigo: #e76f51;
    --sidebar-w: 250px;
    --cinza-bg: #f4f6f9;
}

* { box-sizing: border-box; }
body { font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; background: var(--cinza-bg); margin: 0; }

/* ---------- Tela de autenticação ---------- */
.tela-auth {
    background: linear-gradient(135deg, var(--cor-primaria) 0%, var(--cor-secundaria) 100%);
    min-height: 100vh;
}
.word-break { word-break: break-all; }

/* ---------- Layout app ---------- */
.layout-app { display: flex; min-height: 100vh; }

.sidebar {
    width: var(--sidebar-w);
    background: var(--cor-primaria);
    color: #fff;
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0; bottom: 0; left: 0;
    z-index: 1040;
    transition: transform .3s ease;
}
.sidebar-brand {
    padding: 1.25rem 1.5rem;
    font-size: 1.25rem;
    font-weight: 700;
    display: flex; align-items: center; gap: .5rem;
    border-bottom: 1px solid rgba(255,255,255,.1);
}
.sidebar-brand i { color: var(--cor-acento); font-size: 1.5rem; }
.sidebar-nav { flex: 1; padding: 1rem 0; overflow-y: auto; }
.sidebar-nav .nav-item, .sidebar-footer .nav-item {
    display: flex; align-items: center; gap: .75rem;
    padding: .7rem 1.5rem;
    color: rgba(255,255,255,.8);
    text-decoration: none;
    transition: all .2s;
    border-left: 3px solid transparent;
}
.sidebar-nav .nav-item:hover, .sidebar-footer .nav-item:hover {
    background: rgba(255,255,255,.08); color: #fff;
}
.sidebar-nav .nav-item.ativo {
    background: rgba(46,196,182,.15);
    border-left-color: var(--cor-acento);
    color: #fff; font-weight: 600;
}
.sidebar-nav .nav-item i { font-size: 1.1rem; width: 22px; }
.sidebar-footer { border-top: 1px solid rgba(255,255,255,.1); padding: .5rem 0; }
.sidebar-footer .nav-item i { width: 22px; }

.conteudo-area {
    flex: 1;
    margin-left: var(--sidebar-w);
    display: flex; flex-direction: column;
    min-width: 0;
}
.topbar {
    background: #fff;
    padding: .85rem 1.5rem;
    display: flex; align-items: center; gap: 1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
    position: sticky; top: 0; z-index: 1030;
}
.topbar-titulo { font-size: 1.25rem; margin: 0; font-weight: 600; color: var(--cor-primaria); flex: 1; }
.conteudo-principal { padding: 1.5rem; flex: 1; }
.rodape { padding: 1rem 1.5rem; text-align: center; color: #9aa5b1; font-size: .85rem; }

/* ---------- Cards de resumo ---------- */
.card-resumo {
    border: none; border-radius: 14px;
    box-shadow: 0 2px 12px rgba(13,59,102,.06);
    transition: transform .2s;
    height: 100%;
}
.card-resumo:hover { transform: translateY(-3px); }
.card-resumo .icone {
    width: 48px; height: 48px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem; color: #fff;
}
.card-resumo .rotulo { color: #6b7785; font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; }
.card-resumo .valor { font-size: 1.5rem; font-weight: 700; color: var(--cor-primaria); }
.bg-grad-azul { background: linear-gradient(135deg,#0d3b66,#1b6ca8); }
.bg-grad-verde { background: linear-gradient(135deg,#2a9d8f,#2ec4b6); }
.bg-grad-laranja { background: linear-gradient(135deg,#e76f51,#f4a261); }
.bg-grad-roxo { background: linear-gradient(135deg,#5e548e,#9f86c0); }

/* ---------- Cards genéricos ---------- */
.card { border: none; border-radius: 14px; box-shadow: 0 2px 12px rgba(13,59,102,.06); }
.card-header { background: #fff; border-bottom: 1px solid #eef1f5; font-weight: 600; color: var(--cor-primaria); border-radius: 14px 14px 0 0 !important; }
.btn-primary { background: var(--cor-secundaria); border-color: var(--cor-secundaria); }
.btn-primary:hover { background: var(--cor-primaria); border-color: var(--cor-primaria); }
.table thead th { background: #f8fafc; color: #51606f; font-weight: 600; font-size: .85rem; text-transform: uppercase; letter-spacing: .02em; }
.badge-cat { font-weight: 500; }

/* ---------- Responsivo ---------- */
@media (max-width: 992px) {
    .sidebar { transform: translateX(-100%); }
    .sidebar.aberta { transform: translateX(0); }
    .conteudo-area { margin-left: 0; }
}


/* ---------- Central administrativa ---------- */
.admin-brand-badge { margin-left:auto; font-size:.55rem; letter-spacing:.08em; background:rgba(46,196,182,.2); color:#6ee7d8; padding:.25rem .4rem; border-radius:5px; }
.admin-hero { background:linear-gradient(120deg,#0b2545,#134e70); color:#fff; border-radius:18px; padding:1.7rem 2rem; display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; box-shadow:0 12px 35px rgba(13,59,102,.15); }
.admin-hero h2 { font-size:1.45rem; margin:.4rem 0 .3rem; font-weight:700; }.admin-hero p { margin:0; color:rgba(255,255,255,.68); }
.admin-eyebrow { font-size:.72rem; letter-spacing:.12em; color:#5eead4; font-weight:700; }.admin-hero-date { color:rgba(255,255,255,.75); white-space:nowrap; font-size:.85rem; }
.admin-filter .form-label { font-size:.75rem; color:#64748b; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }.admin-filter .input-group-text { background:#fff; border-right:0; color:#94a3b8; }.admin-filter .input-group .form-control { border-left:0; }
.admin-kpi { border:1px solid #edf1f7; }.admin-kpi-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }.admin-kpi-icon { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; font-size:1.05rem; }
.admin-kpi-icon.azul { color:#2563eb; background:#dbeafe; }.admin-kpi-icon.verde { color:#059669; background:#d1fae5; }.admin-kpi-icon.roxo { color:#7c3aed; background:#ede9fe; }.admin-kpi-icon.laranja { color:#ea580c; background:#ffedd5; }.admin-kpi-icon.vermelho { color:#dc2626; background:#fee2e2; }.admin-kpi-icon.azul-claro { color:#0891b2; background:#cffafe; }
.admin-kpi-label { color:#64748b; font-size:.76rem; text-transform:uppercase; letter-spacing:.035em; }.admin-kpi-value { color:#0f2744; font-size:1.25rem; line-height:1.3; font-weight:750; margin:.25rem 0; white-space:nowrap; }.admin-kpi-sub { color:#94a3b8; font-size:.76rem; }
.admin-card-header div { display:flex; align-items:center; gap:.45rem; }.admin-card-header small { display:block; font-weight:400; color:#94a3b8; margin-left:.35rem; }.admin-chart { height:315px; }.admin-chart-sm { height:245px; }
.admin-table th { white-space:nowrap; padding:.9rem 1rem; }.admin-table td { padding:.85rem 1rem; }.client-cell { display:flex; align-items:center; gap:.7rem; min-width:210px; }.client-cell small { display:block; color:#94a3b8; font-size:.75rem; }
.client-avatar { width:36px; height:36px; border-radius:10px; display:grid; place-items:center; background:linear-gradient(135deg,#dbeafe,#ccfbf1); color:#0d3b66; font-weight:750; flex:none; }
.admin-detail-row td { background:#f8fafc; padding:1rem 1.5rem !important; }.admin-detail-grid { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)); gap:1rem; }.admin-detail-grid > div { background:#fff; border:1px solid #e8edf3; border-radius:10px; padding:.8rem 1rem; }
.admin-detail-grid span,.admin-detail-grid small { display:block; color:#8492a6; font-size:.72rem; }.admin-detail-grid strong { display:block; color:#0f2744; margin:.15rem 0; }
@media (max-width:768px) { .admin-hero { align-items:flex-start; flex-direction:column; padding:1.3rem; }.admin-detail-grid { grid-template-columns:repeat(2,1fr); }.admin-card-header small { display:none; } }

.consultoria-banner { margin:1rem 1.5rem 0; padding:.75rem 1rem; background:linear-gradient(90deg,#0f766e,#0d9488); color:#fff; border-radius:12px; display:flex; align-items:center; justify-content:space-between; gap:1rem; box-shadow:0 5px 18px rgba(13,148,136,.18); }
.consultoria-banner > div { display:flex; align-items:center; gap:.65rem; }.consultoria-banner i { font-size:1.1rem; }.consultoria-banner form { margin:0; }
@media (max-width:768px) { .consultoria-banner { margin:.75rem; align-items:flex-start; flex-direction:column; } }


/* Admin dashboard explanations */
.filter-help { margin-top:.85rem; padding-top:.75rem; border-top:1px solid #eef2f7; color:#64748b; font-size:.78rem; }
.filter-help i,.chart-note i { color:#2563eb; margin-right:.3rem; }
.chart-explanation { margin-top:.75rem; padding:.7rem .85rem; display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; background:#f8fafc; border-radius:10px; color:#64748b; font-size:.74rem; }
.chart-explanation b { color:#334155; }
.admin-chart-health { height:185px; }
.health-legend { display:grid; gap:.48rem; margin-top:.65rem; color:#64748b; font-size:.72rem; }
.health-legend span { display:grid; grid-template-columns:10px auto 1fr; align-items:start; column-gap:.35rem; }
.health-legend b { color:#334155; white-space:nowrap; }
.health-dot { width:8px; height:8px; border-radius:50%; margin-top:.28rem; }
.health-dot.healthy { background:#10b981; }.health-dot.warning { background:#f59e0b; }.health-dot.danger { background:#ef4444; }.health-dot.neutral { background:#94a3b8; }
.chart-note { margin:.75rem 0 0; padding:.65rem .75rem; background:#f8fafc; border-radius:9px; color:#64748b; font-size:.72rem; line-height:1.45; }
@media (max-width:768px) { .chart-explanation { grid-template-columns:1fr; } }

.admin-card-header > div { display:block; }
.admin-card-header > div > i { margin-right:.4rem; }
.admin-card-header small { margin:.22rem 0 0 1.55rem; line-height:1.35; }
.health-legend span { display:block; position:relative; padding-left:14px; }
.health-legend .health-dot { position:absolute; left:0; top:.08rem; }


/* MNS brand */
.sidebar-brand { min-height:82px; padding:.7rem 1rem; gap:.65rem; }
.sidebar-brand-link { display:flex; align-items:center; min-width:0; flex:1; text-decoration:none; }
.sidebar-brand-logo { display:block; width:164px; max-width:100%; height:auto; }
.sidebar-brand .admin-brand-badge { flex:none; }
.auth-brand-logo { display:block; width:min(310px,82%); height:auto; margin:0 auto; }
.auth-brand p { color:rgba(255,255,255,.72); margin:.65rem 0 0; font-size:.88rem; letter-spacing:.02em; }
@media (max-width:992px) { .sidebar-brand-logo { width:158px; } }
